const install = (Vue, vm) => {
	// 此为自定义配置参数，具体参数见上方说明
	Vue.prototype.$u.http.setConfig({
		baseUrl: 'https://api.shop.eduwork.cn',
		loadingText: '努力加载中~',
		loadingTime: 800,
		//这个绝对要配置 卡了一天 吐了
		originalData: true, // 是否在拦截器中返回服务端的原始数据

	});


	// 请求拦截器
	Vue.prototype.$u.http.interceptor.request = (config) => {
		// 方式一，存放在vuex的token，假设使用了uView封装的vuex方式
		// 见：https://uviewui.com/components/globalVariable.html
		// config.header.token = vm.token;
		config.header.Authorization = "Bearer " + vm.vuex_token

	}


	// 响应拦截，如配置，每次请求结束都会执行本方法
	Vue.prototype.$u.http.interceptor.response = (res) => {
		const {statusCode,data} = res
		if (statusCode < 400) {
			return data;
		} else if (statusCode == 400) {
			// 错误的请求
			vm.$u.toast(data.message)
			return false;
		} else if (statusCode == 401) {
			if (data.message == 'Unauthorized') {
				vm.$u.toast('账号或密码错误，请重新登录');
			} else {
				vm.$u.utils.isLogin()

			}
			return false;
		} else if (statusCode == 422) { 
			// 表单验证未通过
			const {
				errors
			} = data
			vm.$u.toast(Object.values(errors)[0][0])
			return false;
		} else {
			// 如果返回false，则会调用Promise的reject回调，
			// 并将进入this.$u.post(url).then().catch(res=>{})的catch回调中，res为服务端的返回值
			return false;
		}
	}




}

export default {
	install
}
